const app = getApp()
Page({
	data: {
		address: {},
		allChecked: false,
		cart: [],
		fushilist: [],
		totalPrice: 0,
		totalNum: 0
	},
	onLoad() {
    this.getfushiList()
  },
	onShow() {
		// 获取缓存中的收货地址信息
		const address = wx.getStorageSync('address');
		// console.log(address);
		// 获取缓存中购物车的数据
		const cart = wx.getStorageSync("cart") || [];
		// console.log("购物车中的数据：");
		// console.log(cart);
		this.setData({
			address
		});
		this.setData({
			cart
		});
		this.setCart(cart);
	},
	// 点击收货地址按钮
	handleChooseAddress() {
		wx.chooseAddress({
			success: (address) => {
				// 存入到缓存中
				wx.setStorageSync('address', address)
			}
		});
	},

	//商品的选中
	handeItemChange(e) {
		// 获取被修改的商品id
		const _id = e.currentTarget.dataset.id
		let {
			cart
		} = this.data;
		let index = cart.findIndex(v => v._id === _id);
		cart[index].checked = !cart[index].checked;
		this.setCart(cart);
	},
	//设置购物车状态同时计算底部工具栏
	setCart(cart) {
		let allChecked = true;
		// 总价格 总数量
		let totalPrice = 0;
		let totalNum = 0;
		cart.forEach(v => {
			if (v.checked) {
				totalPrice += v.num * v.price;
				totalNum += v.num;
			} else {
				allChecked = false;
			}
		})
		// 判断是否为空
		allChecked = cart.length != 0 ? allChecked : false;
		this.setData({
			cart,
			totalPrice,
			totalNum,
			allChecked
		});
		wx.setStorageSync('cart', cart);
	},
	//商品的全选功能
	handleItemAllCheck() {
		//获取data中的数据
		let {
			cart,
			allChecked
		} = this.data;
		// 修改值
		allChecked = !allChecked;
		// 循环修改cart数组 中商品的选中状态
		cart.forEach(v => v.checked = allChecked);
		// 把修改后的值 填充回data或者缓存中
		this.setCart(cart);
	},
	// 商品数量编辑功能  
	handleItemNumEdit(e) {
		// 获取传递过来的参数
		const {operation,id} = e.currentTarget.dataset;
		// 需要获取购物车数组
		let {cart} = this.data;
		// 找到需要修改的商品索引
		const _id = e.currentTarget.dataset.id
		const index = cart.findIndex(v => v._id === _id);
		// 先判断是否要执行删除
		if (cart[index].num === 1 && operation === -1) {
			//弹窗提示
			wx.showModal({
				title: '提示',
				content: "你是否要移除此商品?",
				success: (res) => {
					if (res.confirm) {
						cart.splice(index, 1);
						this.setCart(cart);
					} else if (res.cancel) {
						console.log('点击了取消');
					}
				},

			})
		} else {
			// 进行修改数量
			cart[index].num += operation;
			// 设置回缓存中
			this.setCart(cart)
		}
	},
	// 商品结算
	handlePay() {
		// 判断收货地址
		let {
			address,
			totalNum
		} = this.data;
		if (!address.userName) {
			wx.showToast({
				title: ' 您还没有选择收货地址',
				icon: "none",
			})
			return;
		}
		// 用户是否选择商品
		if (totalNum === 0) {
			wx.showToast({
				title: ' 您还没有选购商品',
				icon: "none",
			})
			return;
		}
		//跳转到支付页面
		wx.navigateTo({
			url: '/pages/pay/pay',
		})
	},
	getfushiList() {
    wx.showLoading({
      title: '加载中...',
    })
    let len = this.data.fushilist.length
    console.log("当前长度", len);
    wx.cloud.database().collection("fushidata")
      .skip(len) //分页器
      .get()
      .then(res => {
        wx.hideLoading()
        console.log("商品列表", res)
        let dataList = res.data
        if (dataList.length <= 0) {
          // wx.showToast({
          //   title: '没有更多数据了',
          //   icon: 'none',
          // })
        }
        this.setData({
          fushilist: this.data.fushilist.concat(res.data),
        })
        console.log(res.data);
      })
      .catch(res => {
        wx.hideLoading()
        console.log("请求失败", res);
      })
  },
  // 跳详情
  goDetail(e) {
    // console.log("点击了", e.currentTarget.dataset.item)
    let id = e.currentTarget.dataset.item._id
    console.log(e.currentTarget.dataset.item._id);
    wx.navigateTo({
      url: '/pages/detail/detail?id=' + id,
    })
  },
})